package com.xydtech.ecard.ftp.domain;

import java.math.BigDecimal;

/**
 * @Author: liliya
 * @Description: "sheet-等额本息/本金"实体对象(明细)
 * @Date: Created in 2023/8/24 20:16
 * @Modified:
 */
public class EcardFtpAverageCapitalPlusInterestBO {

    /**
     * 业务日期
     */
    private String businessDate;
    /**
     * 实际本金余额
     */
    private BigDecimal actualPrincipalBalance;
    /**
     * 实际现金流
     */
    private BigDecimal actualCashFlow;
    /**
     * 实际利息流
     */
    private BigDecimal actualInterestFlow;
    /**
     * 实际每期贷款利率(自定义新加)
     */
    private BigDecimal actualRateFlow;

    /**
     * 实际每月还本付息金额(自定义新加)
     */
    private BigDecimal actualRepayCapitalInterest;

    /**
     * 实际期限间隔(自定义新加)
     * 新日期与上一日期的间隔天数,用于计算
     */
    private Integer actualTermInterval;
    /**
     * 实际期限
     * 累计新日期与初始日期的间隔天数
     */
    private Integer actualTerm;
    /**
     * 实际次数(自定义新加)
     * 用于次数显示
     */
    private Integer actualTimes;
    /**
     * (实际)余额累计
     */
    private BigDecimal actualBalanceAccumulation;
    /**
     * (重定价)定价日期
     */
    private String pricingDate;
    /**
     * (重定价)本金余额
     */
    private BigDecimal principalBalance;
    /**
     * (重定价)现金流
     */
    private BigDecimal cashFlow;
    /**
     * (重定价)利息流
     */
    private BigDecimal interestFlow;
    /**
     * 每期贷款利率(自定义新加)
     */
    private BigDecimal rateFlow;
    /**
     * 每月还本付息金额(自定义新加)
     */
    private BigDecimal repayCapitalInterest;
    /**
     * 期限间隔(自定义新加)
     * 新日期与上一日期的间隔天数,用于计算
     */
    private Integer termInterval;
    /**
     * (重定价)期限
     * 累计新日期与初始日期的间隔天数
     */
    private Integer term;
    /**
     * (重定价)次数
     * 用于次数显示
     */
    private Integer times;
    /**
     * (重定价)利率
     */
    private BigDecimal interestRate;
    /**
     * 现金流cashFlow * 期限term
     */
    private BigDecimal calculateVal01;
    /**
     * 现金流cashFlow * 期限term *利率interestRate
     */
    private BigDecimal calculateVal02;
    /**
     * 上限期限
     */
    private Integer configUpperDay;
    /**
     * 下限期限
     */
    private Integer configUnderDay;
    /**
     * 上限利率
     */
    private BigDecimal configUpperRate;
    /**
     * 下限利率
     */
    private BigDecimal configUnderRate;
    /**
     * 上限期限标识(自定义添加)
     */
    private String configUpperKey;
    /**
     * 下限期限标识(自定义添加)
     */
    private String configUnderKey;
    /**
     * 计算上限期限的日期(自定义添加:根据起始日期加月数计算所得)
     */
    private String configUpperDate;
    /**
     * 计算下限期限的日期(自定义添加:根据起始日期加月数计算所得)
     */
    private String configUnderDate;


    public String getBusinessDate() {
        return businessDate;
    }

    public void setBusinessDate(String businessDate) {
        this.businessDate = businessDate;
    }

    public BigDecimal getActualPrincipalBalance() {
        return actualPrincipalBalance;
    }

    public void setActualPrincipalBalance(BigDecimal actualPrincipalBalance) {
        this.actualPrincipalBalance = actualPrincipalBalance;
    }

    public BigDecimal getActualCashFlow() {
        return actualCashFlow;
    }

    public void setActualCashFlow(BigDecimal actualCashFlow) {
        this.actualCashFlow = actualCashFlow;
    }

    public BigDecimal getActualInterestFlow() {
        return actualInterestFlow;
    }

    public void setActualInterestFlow(BigDecimal actualInterestFlow) {
        this.actualInterestFlow = actualInterestFlow;
    }

    public BigDecimal getActualRateFlow() {
        return actualRateFlow;
    }

    public void setActualRateFlow(BigDecimal actualRateFlow) {
        this.actualRateFlow = actualRateFlow;
    }

    public BigDecimal getActualRepayCapitalInterest() {
        return actualRepayCapitalInterest;
    }

    public void setActualRepayCapitalInterest(BigDecimal actualRepayCapitalInterest) {
        this.actualRepayCapitalInterest = actualRepayCapitalInterest;
    }

    public Integer getActualTermInterval() {
        return actualTermInterval;
    }

    public void setActualTermInterval(Integer actualTermInterval) {
        this.actualTermInterval = actualTermInterval;
    }

    public Integer getActualTerm() {
        return actualTerm;
    }

    public void setActualTerm(Integer actualTerm) {
        this.actualTerm = actualTerm;
    }

    public Integer getActualTimes() {
        return actualTimes;
    }

    public void setActualTimes(Integer actualTimes) {
        this.actualTimes = actualTimes;
    }

    public BigDecimal getActualBalanceAccumulation() {
        return actualBalanceAccumulation;
    }

    public void setActualBalanceAccumulation(BigDecimal actualBalanceAccumulation) {
        this.actualBalanceAccumulation = actualBalanceAccumulation;
    }

    public String getPricingDate() {
        return pricingDate;
    }

    public void setPricingDate(String pricingDate) {
        this.pricingDate = pricingDate;
    }

    public BigDecimal getPrincipalBalance() {
        return principalBalance;
    }

    public void setPrincipalBalance(BigDecimal principalBalance) {
        this.principalBalance = principalBalance;
    }

    public BigDecimal getCashFlow() {
        return cashFlow;
    }

    public void setCashFlow(BigDecimal cashFlow) {
        this.cashFlow = cashFlow;
    }

    public BigDecimal getInterestFlow() {
        return interestFlow;
    }

    public void setInterestFlow(BigDecimal interestFlow) {
        this.interestFlow = interestFlow;
    }

    public BigDecimal getRateFlow() {
        return rateFlow;
    }

    public void setRateFlow(BigDecimal rateFlow) {
        this.rateFlow = rateFlow;
    }

    public BigDecimal getRepayCapitalInterest() {
        return repayCapitalInterest;
    }

    public void setRepayCapitalInterest(BigDecimal repayCapitalInterest) {
        this.repayCapitalInterest = repayCapitalInterest;
    }

    public Integer getTermInterval() {
        return termInterval;
    }

    public void setTermInterval(Integer termInterval) {
        this.termInterval = termInterval;
    }

    public Integer getTerm() {
        return term;
    }

    public void setTerm(Integer term) {
        this.term = term;
    }

    public Integer getTimes() {
        return times;
    }

    public void setTimes(Integer times) {
        this.times = times;
    }

    public BigDecimal getInterestRate() {
        return interestRate;
    }

    public void setInterestRate(BigDecimal interestRate) {
        this.interestRate = interestRate;
    }

    public BigDecimal getCalculateVal01() {
        return calculateVal01;
    }

    public void setCalculateVal01(BigDecimal calculateVal01) {
        this.calculateVal01 = calculateVal01;
    }

    public BigDecimal getCalculateVal02() {
        return calculateVal02;
    }

    public void setCalculateVal02(BigDecimal calculateVal02) {
        this.calculateVal02 = calculateVal02;
    }

    public Integer getConfigUpperDay() {
        return configUpperDay;
    }

    public void setConfigUpperDay(Integer configUpperDay) {
        this.configUpperDay = configUpperDay;
    }

    public Integer getConfigUnderDay() {
        return configUnderDay;
    }

    public void setConfigUnderDay(Integer configUnderDay) {
        this.configUnderDay = configUnderDay;
    }

    public BigDecimal getConfigUpperRate() {
        return configUpperRate;
    }

    public void setConfigUpperRate(BigDecimal configUpperRate) {
        this.configUpperRate = configUpperRate;
    }

    public BigDecimal getConfigUnderRate() {
        return configUnderRate;
    }

    public void setConfigUnderRate(BigDecimal configUnderRate) {
        this.configUnderRate = configUnderRate;
    }

    public String getConfigUpperKey() {
        return configUpperKey;
    }

    public void setConfigUpperKey(String configUpperKey) {
        this.configUpperKey = configUpperKey;
    }

    public String getConfigUnderKey() {
        return configUnderKey;
    }

    public void setConfigUnderKey(String configUnderKey) {
        this.configUnderKey = configUnderKey;
    }

    public String getConfigUpperDate() {
        return configUpperDate;
    }

    public void setConfigUpperDate(String configUpperDate) {
        this.configUpperDate = configUpperDate;
    }

    public String getConfigUnderDate() {
        return configUnderDate;
    }

    public void setConfigUnderDate(String configUnderDate) {
        this.configUnderDate = configUnderDate;
    }

    @Override
    public String toString() {
        return "EcardFtpAverageCapitalPlusInterestBO{" +
                "业务日期businessDate='" + businessDate + '\'' +
                ", 定价日期pricingDate='" + pricingDate + '\'' +
                ", 实际本金余额actualPrincipalBalance=" + actualPrincipalBalance +
                ", 实际现金流actualCashFlow=" + actualCashFlow +
                ", 实际利息流actualInterestFlow=" + actualInterestFlow +
                ", 实际每期贷款利率actualRateFlow=" + actualRateFlow +
                ", 实际每月还本付息金额actualRepayCapitalInterest=" + actualRepayCapitalInterest +
                ", 实际期限间隔actualTermInterval=" + actualTermInterval +
                ", 实际期限actualTerm=" + actualTerm +
                ", 实际次数actualTimes=" + actualTimes +
                ", 余额累计actualBalanceAccumulation=" + actualBalanceAccumulation +
                ", 本金余额principalBalance=" + principalBalance +
                ", 现金流cashFlow=" + cashFlow +
                ", 利息流interestFlow=" + interestFlow +
                ", 每期贷款利率rateFlow=" + rateFlow +
                ", 每月还本付息金额repayCapitalInterest=" + repayCapitalInterest +
                ", 期限间隔termInterval=" + termInterval +
                ", 期限term=" + term +
                ", 次数times=" + times +
                ", 利率interestRate=" + interestRate +
                ", (现金流cashFlow * 期限term)calculateVal01=" + calculateVal01 +
                ", (现金流cashFlow * 期限term *利率interestRate)calculateVal02=" + calculateVal02 +
                ", 上限期限configUpperDay=" + configUpperDay +
                ", 下限期限configUnderDay=" + configUnderDay +
                ", 上限收益率configUpperRate=" + configUpperRate +
                ", 下限收益率configUnderRate=" + configUnderRate +
                ", 上限期限标识configUpperKey=" + configUpperKey +
                ", 下限期限标识configUnderKey=" + configUnderKey +
                ", 计算上限期限的日期configUpperDate=" + configUpperDate +
                ", 计算下限期限的日期configUnderDate=" + configUnderDate +
                '}';
    }
}
